package com.gxa.lssy.boot.controller;

import com.gxa.lssy.boot.pojo.Test;
import com.gxa.lssy.boot.service.TestServcie;
import com.gxa.lssy.boot.service.TestServcie01;
import com.gxa.lssy.boot.service.TestServcie02;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.Map;

/**
 * @author thinknovo
 * @version 1.0
 */
@RestController
@RequestMapping("/test")   // 这里的路径，通过和数据库表名或者业务模块名相关定义
public class TestController {
    @Resource
    private TestServcie testServcie;

    @GetMapping("/insert")   // 用户希望访问到这个路径，必须通过  父级路径+子级路径的方式才能成功访问
    public Map<String, Object> insert(String username, String password) {
        Test test = new Test();
        test.setUsername(username);
        test.setPassword(password);
        return testServcie.insert(test);
    }
}

/*
1. 用户输入 http://192.168.52.66:8080/test/insert?username=think&password=123456 访问
2. springmvc如果配置成功，则会根据insert(String username, String password)方法中的形式参数，来获取用户传递的值
                                       String username = think     String password = 123456
3. 手动在Controller中创建一个test对象，并且手动set username和password对应的值
4. 把生成好的test对象，传递给service服务
5. service服务接收到对象后，会直接调用mapper接口，如果调用成功则返回组装好的一个map对象
6. map对象在返回前端的时候。springmvc会帮助我们自动转换成一个json对象

7. mapper接口会自动调用mapper.xml文件
   关联依赖方式：<mapper namespace="com.gxa.lssy.boot.mapper.TestMapper">

8. mapper接口中的方法名，就是mapper.xml文件中的insert(update delete select)  id值
9. 如果调用到对应的id值之后，会执行id对应的sql语句

 */